1. Field of the Invention
The present invention relates generally to network servers, and more particularly to the distribution of client requests received from a network to a number of content servers based on one or more static rules and dynamic performance data.
2. Related Art
Today, millions of computer-users worldwide are communicating via the Internet. The Internet provides an unparalleled medium for the exchange and dissemination of ideas, for cheap and efficient long-distance communication, and for the conduct of business. Many entities in the public, private, and governmental sectors are rushing to establish a presence on the Internet.
However, the growth of computer networks is not limited to the Internet alone. Many are finding that additional efficiencies may be realized from computer resources when in-house computers are linked by a network. Businesses, governmental agencies, and academic institutions are all creating vast internal networks to increase the flow of information between their employees or students. In many instances, these networks are accessible to the general public as well.
Those wishing to establish a site on the Internet (i.e., a "web site") must have some means for handling the requests directed to the web site from other network users (i.e., "client requests"). This job of handling client requests becomes complicated when these requests may actually be serviced by a computer, or one of many computers, other than the computer running the web site software. These computers will hereinafter be referred to as "content servers," as they are the machines responsible for providing the content that is the subject of the client request.
Many software products are available today which are capable of distributing client requests amongst multiple content servers. However, these products suffer from numerous drawbacks. First, some existing products are only able to distribute client requests amongst content servers which are of identical hardware design. Others are only able to distribute client requests amongst geographically co-located content servers. Still others are limited to content servers running the same software and having access to identical data. Obviously, these restrictions can be extremely limiting where the web site owner has many content servers, including a variety of hardware and software configurations, geographically dispersed in a number of distant locations.
Some existing products do not consider the processing loads carried by, or even the availability of, content servers when determining which will service a particular client request. Other products rely solely on pre-defined static rules to determine how client requests are distributed rather than altering the distribution based on dynamic changes within the network environment. Still other products are unable to base distribution decisions on the nature of the client request (i.e., sending certain types of client requests to certain content servers).
Conventional products suffer other disadvantages as well. Some are unable to successfully redistribute client requests when the first content server fails. Some require special software to be installed on each content server to report data to the central request handler. Other are inefficient in terms of message traffic sent across the network.
A need exists for an improved system and method for distributing client requests which addresses these problems. The system and method should be able to distribute client requests to content servers of various hardware and software design, and without geographical limitation so long as the content server is accessible via a network.
Further, as web sites become increasingly complex and the flow of client requests swells, those managing the web site would benefit greatly from having sophisticated, customizable software for determining how these burdens are distributed across the content servers tasked to handle these requests. The distribution should be based on both pre-defined static rules, and content server performance data monitored over time. The desired distribution should be achieved without requiring special software to be installed on each content server, and without unduly increasing network message traffic.
Thus, what is required is an improved system and method for distributing client requests to a variety of content servers according to static rules and dynamic monitoring of content server performance.